# -*- coding:utf-8 -*-

"""
授信节点-风控规则-一次跑四个步骤
"""
from aw import *
from autotest import *


class Test_007(TestCase):
    def setUp(self):
        print("Test_001 setUp")

    def test(self):

        ruleStr = """
满足以下任一条件时，响应规则
A、身份证命中银行诈骗风险_状态<>00
B、身份证命中P2P诈骗风险_状态<>00
C、身份证命中消费金融诈骗风险_状态<>00
D、身份证命中小贷诈骗风险_状态<>00
E、身份证命中商业保险诈骗风险_状态<>00
F、身份证命中非银其他机构诈骗风险_状态<>00
        """

        # 1 获取测试规则
        rules = Common.getRulesByResolveStr(ruleStr)
        # 2 从数据库中获取 ruleJson
        ruleJson = Common.getRuleJson()
        # 3 测试第一条规则
        # index = 0
        # testRule = rules[index]  # B、身份证命中P2P短时逾期风险_时间=A/B，且身份证命中P2P短时逾期风险_状态=01/99

        for index,testRule in enumerate(rules):

            # 3.1 将其他的规则初始化
            Common.initializeOtherRule(rules, index, ruleJson)
            # 3.2 获取测试待测试规则组合
            testRules = Common.getTestRules(testRule)  # 测试规则的四种组合
            logger.info(testRules)

            # 3.3 测试组合
            for testRuleStep in testRules:
                Common.setTestRule(ruleJson, testRuleStep)
                # 4 回填规则到数据库
                Common.setRuleJson(ruleJson)

                # 5 调用进件脚本
                Common.execFile(r'D:\dev\接口代码\AssetAutoTest\fudai\FDCreditChain.py')

                # 6 检查数据库结果
                expectVaule = {"result_code": "D999", "rule_result": "D", "rule_code": "FDS_QZ04014"}
                Common.checkResult(expectVaule, times=5)
                logger.info("******************************步骤执行完毕******************************\r\n")
                logger.info("\r\n")
                logger.info("\r\n")
                logger.info("\r\n")


    def tearDown(self):
        print("Test_001 tearDown")
